iT邦幫忙

2022 iThome 鐵人賽

DAY 5
0
自我挑戰組

清空我的最愛之前端筆記系列 第 5

[ Day 5 ] [ CSS ] - Pseudo-classes 偽類 (1)

  • 分享至 

  • xImage
  •  

今天是第五天,翻了一下我的最愛,其中有個書籤存了 Pseudo-classes 偽類,所以今天來整理有哪些 Pseudo-classes 偽類囉!

Pseudo-classes 偽類

是用來表示元素的特殊狀態,以一個冒號 : 為開頭,後面加上名稱。例如 a:hover ,來表示當滑鼠滑過 a 元素的狀態。
有一些偽類是互斥的,而有一些是可以同時應用在同一個元素。

以下是以 W3C 的分類依序介紹


Dynamic pseudo-classes

Dynamic pseudo-classes 是根據元素的名稱、屬性或內容以外的特徵來對元素進行分類,原則上這些特徵不能從 document tree 中推導出來,也不會出現在 document source 或 document tree。

The link pseudo-classes

  • :link
    該連結尚未被訪問過,a:link
  • :visited
    該連結已經被訪問過,a:visited

https://ithelp.ithome.com.tw/upload/images/20220919/20152534XbbtCiyTnV.png

一段時間後,瀏覽器可能會將已被訪問過的連結重設回未訪問過。
這兩個偽類是互斥的。

The user action pseudo-classes

  • :hover
    當滑鼠懸浮在元素上時
  • :active
    當滑鼠按下元素時,常用於 <a>
  • :focus
    當滑鼠聚焦在元素時,常用於表單元素

這些偽類不互斥。
元素可以同時應用 :visited:active 或是 :link:active

.user-action:hover {
  background-color: blue;
}

.user-action:active {
  background-color: yellow;
}

.dynamic-pseudo input:focus {
  background-color: red;
}

https://ithelp.ithome.com.tw/upload/images/20220919/201525348qsvvd2Jwx.png
https://ithelp.ithome.com.tw/upload/images/20220919/20152534IC7U7Vqkek.png
https://ithelp.ithome.com.tw/upload/images/20220919/20152534CYYVZMZyNY.png

The target pseudo-class

  • :target
    在 URL 最後帶有 # anchor identifier,這個 anchor identifier 會連結到文件中的元素,而這個元素便是目標元素
<div class="target-pseudo">
  <h3>The target pseudo-class</h3>
  <a href="#box1">to box1</a>
  <a href="#box2">to box2</a>
  <div id="box1">This is box1.</div>
  <div id="box2">This is box2.</div>
</div>
:target {
  background-color: orange;
}

https://ithelp.ithome.com.tw/upload/images/20220919/201525342X9PVW2IsG.png
點選 to box1,會連結到文件中的 id 為 box1 的元素,該元素為 target

https://ithelp.ithome.com.tw/upload/images/20220919/20152534oZzPxmZjAU.png
點選 to box2,會連結到文件中的 id 為 box2 的元素,該元素為 target

The language pseudo-class

  • :lang(language code)
    選擇為該語系的元素,例如 :lang(en)

The UI element states pseudo-classes

  • :enabled
    表示處於啟用狀態的元素,主要用於表單的元素
  • :disabled
    表示處於禁用狀態的元素,主要用於表單的元素
  • :checked
    被選取的表單元素,用於 <input> 元素的 radio、checkbox 以及 <option> 元素
  • :indeterminate
    不確定狀態的表單元素
.UI-pseudo input:enabled {
  background-color: yellow;
}

.UI-pseudo input:disabled {
  background-color: gray;
}

.UI-pseudo input[type="radio"]:checked {
  width: 30px;
  height: 30px;
}

.UI-pseudo option:checked {
  background-color: green;
}

https://ithelp.ithome.com.tw/upload/images/20220919/20152534PwPvnu5UqR.png

Codepen

明天接續 Structural pseudo-classes ~

參考資料:
W3C - Pseudo-classes
W3schools - Pseudo-classes
MDN - Pseudo-classes

文章同步更新於 medium


上一篇
[ Day 4 ] [ HTML ] - <head> 標籤裡的內容
下一篇
[ Day 6 ] [ CSS ] - Pseudo-classes 偽類 (2)
系列文
清空我的最愛之前端筆記16
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言